<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script>
        //基本类型都是深拷贝，可以理解为拷贝得较彻底，会为新变量分配独立内存空间，所以修改新旧变量的值不会相互影响
        var a = 1;
        var b = a;
        b = 2;
        console.log(a);//1
        console.log(b);//2

        //对象则是浅拷贝，可以理解为拷贝得不那么彻底，只是给新变量分配了一个指向原变量的指针，它们共享内存空间，我想这样设计应该是为了节省内存空间
        var obj1 = {a:1};
        var obj2 = obj1;//obj2其实只是被分配了一个指向obj1的指针，它们共享同一块内存空间，所以无论修改哪个对象的值，都会影响另一个对象
        obj2.a = 2;
        console.log(obj1.a);//2
        console.log(obj2.a);//2

        //避免对象的浅拷贝
        var obj3 = {a:1};
        var obj4 = {a:obj3.a};
        obj4.a = 2;
        console.log(obj3.a);//1
        console.log(obj4.a);//2
    </script>
</head>
<body>

</body>
</html>